//#include<stdio.h>
//#include<stdlib.h>
//struct A
//{
//	int a;
//	int b;
//	char c;
//};
//#define offsetof(StructType,MemberName) (size_t)(&(((StructType*)0)->MemberName))
//int main()
//{
//	printf("%zd\n", offsetof(struct A, c));
//	return 0;
//}

#include<stdio.h>
#include<stdlib.h>
//交换一个整数二进制的奇数位和偶数位
// 0101 0101 0101 0101 0101 0101 0101 0101  得到奇数位
// 0x55555555
// 1010 1010 1010 1010 1010 1010 1010 1010  得到偶数位
// 0xaaaaaaaa
#define SwapIntBit(n) (((n)&0x55555555)<<1) | (((n)&0xaaaaaaaa)>>1)
int main()
{
	int n = 1;
	printf("%d\n", SwapIntBit(n));
	return 0;
}